package com.platform.framework.gateway.alipay.inf;

import com.platform.framework.entity.alipay.AlipayReturnInfo;
import com.platform.framework.entity.alipay.AliRefundReturnInfo;
import com.platform.framework.vo.transfer.TransportLayer;

/**
 * 支付宝SDK接口
 * @author ly-liugaoyang
 *
 */
public interface AlipayGateway {
	
	/**
	 * 当面付2.0条码支付（使用未集成交易保障接口的当面付2.0服务）
	 * @param alipayReqVo
	 * @return
	 * @throws Exception
	 */
	public AlipayReturnInfo aliBarcodePay (TransportLayer transportLayer)throws Exception;
	
	/**
	 * 当面付2.0退款接口
	 * @param alipayReqVo
	 * @return
	 * @throws Exception
	 */
	public AliRefundReturnInfo aliTradeRefund (TransportLayer transportLayer)throws Exception;
	
	/**
	 * 支付宝分账接口
	 * @param alipayReqVo
	 * @return
	 * @throws Exception
	 */
	public String alipaySettle (TransportLayer transportLayer)throws Exception;
	
	/**
	 * 当面付2.0生成支付二维码
	 * @param alipayReqVo
	 * @return
	 * @throws Exception
	 */
	public String generateQRCode (TransportLayer transportLayer)throws Exception;
	
	/**
	 * 当面付2.0交易查询
	 * @param alipayReqVo
	 * @return
	 * @throws SellerIDException
	 */
	public String queryTradeResult(TransportLayer transportLayer)throws Exception;
	
	/**
	 * 支付宝PC端调用支付
	 * @param alipayReqVo
	 * @return
	 */
	public String aliPCpay (TransportLayer transportLayer);
	
	/**
	 * 支付宝WAP端调用支付
	 * @param alipayReqVo
	 * @return
	 */
	public String aliWapPay (TransportLayer transportLayer);
	
	/**
	 * 撤销支付宝订单(根据outTradeNo)
	 * @param alipayReqVo
	 */
	public String cancelTrade (TransportLayer transportLayer) throws Exception;
	
	
}
